package model;

import java.util.ArrayList;

public class Model extends Thread {

	private static Horloge h;
	private final Fourmiliere maFourmiliere = new Fourmiliere(0, 0, 150);

	private static boolean fourmiliereMorte = true;
	private static EnumSaison saison = EnumSaison.PRINTEMPS;
	private static int jour = 0;
	private static int min = 0;
	private static int tailleCase=10;
	public static int sex = 0;
	public static int sol = 0;
	public static int ouv = 0;
	
	public Model(Horloge h) {
		this.h = h;
	}

	public void run() {
		while (fourmiliereMorte) {
			try {
				h.attendre();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			incrementeTemps();
			ArrayList<Fourmi> nosFourmis = maFourmiliere.getNosFourmis();
			for (int i = 0; i < nosFourmis.size(); i++) {
				nosFourmis.get(i).vivre();
			}
		}
	}
	
	public static int getTailleCase() {
		return tailleCase;
	}

	public void setTailleCase(int tailleCase) {
		this.tailleCase = tailleCase;
	}

	public Fourmiliere getMafourmiliere() {
		return maFourmiliere;
	}

	public void incrementeTemps() {
		min++;
		if (min == 1440) {
			min=0;
			jour++;
			if (jour == 91) {
				jour=0;
				evolutionSaison();
			}
		}
	}

	public void evolutionSaison() {
		switch (saison) {
		case AUTOMNE:
			saison = EnumSaison.HIVER;
			break;
		case ETE:
			saison = EnumSaison.AUTOMNE;
			break;
		case HIVER:
			saison = EnumSaison.PRINTEMPS;
			break;
		case PRINTEMPS:
			saison = EnumSaison.ETE;
			break;
		default:
			break;
		}
	}

	public boolean isFourmiliereMorte() {
		return fourmiliereMorte;
	}

	public void setFourmiliereMorte(boolean fourmiliereMorte) {
		this.fourmiliereMorte = fourmiliereMorte;
	}

	public static EnumSaison getSaison() {
		return saison;
	}

	public static void setSaison(EnumSaison saison) {
		Model.saison = saison;
	}
}
